//
// Created by denglibin on 2021/8/11.
//

#ifndef WXWIDGETSSTUDY_FIRSTFRAME_H
#define WXWIDGETSSTUDY_FIRSTFRAME_H
#include <wx/wx.h>
#include "MyTextCtrl.h"
/**
 * 一个Frame窗口是一个可以容纳别的窗口的顶层窗
 *口，通常拥有一个标题栏和一个菜单栏。
 */
class FirstFrame : public wxFrame{
public:
    /**
     * 构造函数
     * @param title
     */
    FirstFrame(const wxString& title);
    /**
     * 析构
     */
    ~FirstFrame();
    /**
     * 事件处理函数 所有的事件处理函数拥有相同的形式。他们的返回值都是void，他们都不是虚函数，他们都只
     *有一个事件对象作为参数.
     * 只有Command事件(指那些直接或间接继承自wxCommandEvent的事件)才会被递
     *归的应用到其父窗口的事件表。
     * @param event
     */
    void OnQuit(wxCommandEvent& event);
    /**
     * 事件处理函数
     * @param event
     */
    void OnAbout(wxCommandEvent& event);
    /**
     * 事件处理函数
     * @param event
     */
    void OnSize_(wxSizeEvent& event);

    /**
     * 事件处理函数
     * @param event
     */
    void OnButtonOK(wxCommandEvent& event);


private:
    //声明事件表
    DECLARE_EVENT_TABLE();

    wxButton* okButton = nullptr;
    MyTextCtrl* textCtrl = nullptr;

    /**
     * 初始化
     */
    void initFrame();

    /**
     * 创建菜单
     */
    void initMenu();

    /**
     * 状态栏
     */
    void initStatusBar();

    /**
     * 组件
     */
    void initComponent();
};


#endif //WXWIDGETSSTUDY_FIRSTFRAME_H
